feat: Implement Literature MCP for multi-source academic literature search#182
feat: Implement Literature MCP for multi-source academic literature search#182SoberPizza wants to merge 2 commits intomainfrom
Conversation
SoberPizza
commented
Jan 19, 2026
- Added README.md detailing features, quick start guide, and usage examples for the Literature MCP service.
- Created literature utility module with base client, DOI normalization, and deduplication functionalities.
There was a problem hiding this comment.
Sorry @SoberPizza, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
This pull request implements a comprehensive Literature MCP (Model Context Protocol) service for searching academic literature from multiple data sources, with initial support for OpenAlex API. The implementation follows OpenAlex API best practices including two-step name resolution, rate limiting, exponential backoff retry, and intelligent deduplication.
Changes:
- Added a literature utility module with base client abstraction, DOI normalization/deduplication, and work distribution across multiple data sources
- Implemented OpenAlex API client with advanced filtering (author, institution, journal, year, work type, language, retraction status)
- Created MCP server with search and DOI lookup tools, including detailed error messages and guidance for LLM users
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 18 comments.
Show a summary per file
| File | Description |
|---|---|
service/app/utils/literature/__init__.py |
Package initialization exposing core classes and functions |
service/app/utils/literature/base_client.py |
Abstract base class defining the interface for literature data source clients |
service/app/utils/literature/doi_cleaner.py |
DOI normalization and deduplication utilities with priority rules |
service/app/utils/literature/work_distributor.py |
Central coordinator for distributing searches across multiple data sources and aggregating results |
service/app/utils/literature/openalex_client.py |
OpenAlex API client implementation with rate limiting, retry logic, and two-step name resolution |
service/app/mcp/literature.py |
MCP server exposing search_literature and get_work_by_doi tools with comprehensive documentation |
service/app/utils/literature/README.md |
Comprehensive documentation in Chinese covering features, usage examples, and best practices |
.gitignore |
Added exclusions for VS Code and MCP documentation directories |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…earch (skip pre-commit due to Pyright false positive on __getattr__)